﻿using System;
using System.Windows.Forms;
using VABMobile.oo;

namespace VABMobile.ui
{
    public partial class VABForm : Form
    {
        private Boleto boleto;
       

        public VABForm(Turno turno)
        {
            InitializeComponent();

            boleto=new Boleto();
            boleto.Turno = turno;

        }

        public TextBox AsientoID
        {
            get { return this.asientoID; }
        }

        public TextBox Telefono
        {
            get { return this.telefono; }
        }

        public TextBox Rut
        {
            get { return this.rut; }
        }

        public TextBox Monto
        {
            get { return this.monto; }
        }

        public TextBox Agencia
        {
            get { return this.agencia; }
        }

        public Boleto Boleto
        {
            get { return boleto; }
            set { boleto = value; }
        }

        public void setPasajero(Persona pasajero)
        {
            boleto.Pasajero = pasajero;
            this.rut.Text = pasajero.ppRut();
            this.rut.Enabled = false;
        }

        private void validator_Click(object sender, EventArgs e)
        {
            if(string.IsNullOrEmpty(this.rut.Text) || 
                string.IsNullOrEmpty(this.telefono.Text) ||
                string.IsNullOrEmpty(this.monto.Text) ||
                string.IsNullOrEmpty(this.agencia.Text) ||
                string.IsNullOrEmpty(this.destinoText.Text))
            {
                MessageBox.Show("Ningun campo puede estar vacio");
                return;
            }

            if(boleto.Pasajero == null && 
                (rut.Text.Contains(".") || rut.Text.Contains("-")))
            {
                MessageBox.Show("Ing. rut sin guion ni punto ej: 1234567k");
                return;
            }

            try
            {
                boleto.Monto = Int32.Parse(this.monto.Text);
            }
            catch (Exception )
            {

                MessageBox.Show("Monto incorrecto!");
                return;
            }
            if (boleto.Pasajero == null)
                boleto.Pasajero=new Persona(rut.Text);
                
            boleto.Pasajero.Telefono = this.telefono.Text;
            boleto.Agencia = this.agencia.Text;
            boleto.Destino = this.destinoText.Text;

            this.validator.Enabled = false;
            this.botonVenta.Enabled = true;
        }

        private void agencias_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.agencias.SelectedIndex == 0)
            {
                this.agencia.Enabled = true;
                this.agencia.Text = "Especifique";
                return;
            }
            this.agencia.Text = (string) this.agencias.SelectedItem;
            this.agencia.Enabled = false;
        }

        private void destinoCb_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.destinoCb.SelectedIndex == 0)
            {
                this.destinoText.Enabled = true;
                this.destinoText.Text = "Especifique";
                return;
            }
            this.destinoText.Text = (string)this.destinoCb.SelectedItem;
            this.destinoText.Enabled = false;    
        }
    }
}